package com.tedu.review.day02;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode;

/**
 * java类--继承--方法：具备多态性
 * 实现父子类方法相互调用，注意：重写和重载
 * 实现多态：向上造型
 */
class A1{
    public void tell1(){
        System.out.println("A--你好，我是tell1");
    }
    public void tell2(){
        System.out.println("A--你好，我是tell2");
    }
}
   class B1 extends  A1{
       public void tell2(){
           System.out.println("B--你好，我是tell2");
       }
       public void tell3(){
           System.out.println("A--你好，我是tell3");
       }
    }
public class 多态造型问题 {
    public static void main(String[] args) {
        //继承--方法：方法互通 考虑：多态【造型上、下】
        //A1 a1=new B1(); 抽象类与接口使用
     //   B1 b1=new B1();
        //A1 ai=b1;
       // a1.tell1();
       // a1.tell2();//向上造型：调用父类方法，没有实现方法互通
                   //如果有重写 子类覆盖父类的方法

        //向下造型
        A1 a1=new B1();// ①父类 引用=new子类（）；向上造型一次
        B1 b1=(B1)a1;
        //实现方法互通
        b1.tell1();//父类方法
        b1.tell2();//子类方法：重写
        b1.tell3();//子类方法
    }
}
